package exception;
//测试抛出异常的演示demo
/*public class Person {
   private int age;

   public int getAge(){
       return age;
   }

   public void setAge(int age) throws IllegalAgeException {
       if (age<=0 || age>100) {
           //使用throw抛出异常
//      除了runtimeexception外，其他异常必须处理，否则会编译错误
//           throw new Exception("年龄必须在0-100之间");
           throw new IllegalAgeException("年龄必须在0-100之间");//跟return一样，后面的代码不会执行，直接退出
       }
       this.age = age;
   }
}*/
public class Person {
    private int age;

    public int getAge() {
        return age;
    }
    /*
        当我们在方法上使用throws声明对外抛出一个异常时，编译器就要求调用方必须处理该异常
     */
    public void setAge(int age)throws IllegalAgeException {
        if (age<0||age>100){
//            throw new RuntimeException("年龄不合法");
            /*
                当我们使用throw抛出一个异常时(除了RuntimeException和它的子类型异常)
                编译器要求我们必须在方法上使用throws声明该异常的抛出，通知调用者处理
             */
//            throw new Exception("年龄不合法");
            throw new IllegalAgeException("年龄超过了范围(1-100):"+age);
        }
        this.age = age;
    }
}
